Field
Embodiments presented herein generally relate to computer image rendering and animation. More specifically, embodiments presented herein provide techniques for using planar sections to generate a simplified occluder geometry used for occlusion culling during rendering.
Description of the Related Art
Real-time rendering of computer graphics is a resource intense operation. Performance can be optimized by rendering the least amount of objects necessary to obtain a workable image. This is frequently done by rendering only 3D objects which are visible within a field of view of the scene being rendered.
Occlusion culling is the process of removing 3D objects from a group of geometry being rendered. The occlusion culling process identifies objects in a scene that are not visible from a camera perspective and removes the objects from the rendering process. Rendering tools rely on occlusion culling to determine what objects in a rendering operation can be skipped to enhance performance. Geometry can therefore be culled by determining the visibility of elements within a view frustum.
Generally, occlusion culling methods generate an occluder for each object to be rendered. An occluder is a simplified version of input geometry which preserves a property of the input geometry, namely, that rays intersecting the occluder also intersect the original geometry. However, some rays that do not intersect the occluder may intersect the original geometry. As a result, a simplified occluder is sometimes referred to as a “conservative occluder.” To be effective, an occluder should include relatively few triangles with respect to the input geometry. That is, as occluders themselves become more complex, the benefit to the rendering process diminishes.
Occlusion culling is challenging with more complex sets of geometry. Further, current occlusion culling approaches such as error-sensitive simplification and voxel-based simplification are unsuitable for producing simplifications of input geometry, because of constraints to the input geometry. For instance, an error-sensitive simplification can only operate on a mesh surface of the input geometry.